//************************************************************
//    > File Name: setzero.cpp
//    > Author: davis
//    > Mail:  
//    > Created Time: 2017年03月10日 10:00:39
//***********************************************************
//lintcode #162
#include<bits/stdc++.h>
using namespace std;
void setZeros(vector<vector<int> > &mat){
	if(mat.size()<1 || mat[0].size()<1) return;
	int m=mat.size(),n=mat[0].size(),row=-1,col=-1;
	for(int i=0;i<m;++i){
		for(int j=0;j<n;++j){
			if(mat[i][j]!=0) continue;
			if(row==-1) row=i,col=j;
			mat[i][col]=0;
			mat[row][j]=0;
		}
	}
	if(row==-1) return;
	for(int i=0;i<m;++i){
		if(i==row) continue;
		for(int j=0;j<n;++j){
			if(j==col) continue;
			if(mat[row][j]==0 || mat[i][col]==0) mat[i][j]=0;
		}
	}
	for(int i=m;i;mat[--i][col]=0);
	for(int j=n;j;mat[row][--j]=0);
}
int main()
{
	vector<vector<int> > array(4);
	for(int i=0;i<4;++i)
		array[i].resize(4);
	for(int i=0;i<4;++i)
		for(int j=0;j<4;++j)
			array[i][j]=1;
	array[0][3]=0;
	array[1][1]=0;
	array[2][2]=0;
	for(int i=0;i<4;++i){
		for(int j=0;j<4;++j)
			cout<<array[i][j]<<" ";
		cout<<endl;
	}
	cout<<endl;
	setZeros(array);
	for(int i=0;i<4;++i){
		for(int j=0;j<4;++j)
			cout<<array[i][j]<<" ";
		cout<<endl;
	}

}
